package com.chapter2.sort;

/**
 * @ClassName: SelectionSort
 * @Description: 选择排序
 * @author minjun minjun@bw30.com
 * @date 2015-2-13 下午11:07:17
 * 
 */
public class SelectionSort extends AbstractSort {

	/**
	 * 依次选择最小的元素放到左边第一个，固定后，继续往后面找，找到最小的放到左边第二个,......
	 */
	@Override
	public void sort(int[] array) {
		int len=array.length;
		
		for(int i=0;i<len;i++){
			//初始化最小元素索引
			int min=i;
			for(int j=i+1;j<len;j++){
				//找到最小元素所在索引，并记录下来
				if(less(array[j], array[min])) min=j;
			}
			//将最小元素索引和i互换
			if(i!=min) exchange(array, i, min);
		}
	}
	
}
